<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    /*
      练习
      元素也是对象
      demo 开关灯
      数据类型的检测
      函数
      各行变色
    */

    // let a = 12; // 14
    // if (a >= 0 && a <= 20) {
    //   if (a % 2 === 0) {
    //     a += 2;
    //   }
    // } else {
    //   a -= 2;
    // }
    // console.log(a); // 14


    // let ary = ['erYa', '珠峰', '培训', true, false];
    // for (var i = 0; i < ary.length; i++) {
    //   console.log(ary[i]); // 0  ary[0]  'erYa'
    //   break;
    // }
    // console.log(i); // 0

    // for (var i = 10; i > 0;i--){
    //   continue; // 结束当前轮循环体的代码，进行下一轮
    //   console.log(i); // 不输出
    // };

    // console.log(i); // 0


    // for (var i = 1; i <= 10; i += 2) { // 2 4 5 7 5
    //   if (i <= 5) {
    //     i++;
    //     continue;
    //   } else {
    //     i -= 2;
    //     break;
    //   }
    //   i--;
    //   console.log(i);
    // }
    // console.log(i); // 5


    // for (var i = 3; i < 12; i++) { // 2 3 2 3 死循环
    //   if (i < 3) {
    //     i++;
    //     break;
    //   }
    //   if (i > 9) {
    //     i += 2;
    //     continue;
    //   }
    //   i--;
    // };

    // console.log(i);

    // i++ 先取值后运算
    // ++i 先运算后取值

    // var i = 2; // 3 4 5 6
    // console.log(i++ == ++i); // 2 == 4  false
    // console.log(++i == i++); // 5 == 5 true
    // console.log(i); // 6

    // var a = 1; // 2 3 4 3 2
    // var num = (a++) + (++a) + (a++) - (a--) - (--a);
    //          1   +   3   +   3   -   4   -   2
    // console.log(num); // 1
    // console.log(a); // 2


    // 1、 !(!"Number(undefined)"); // true
    // 2、 isNaN(parseInt({})) + Number([1]) + parseFloat(undefined);
    //       true + 1 + NaN-->NaN
    // var a =  Boolean(Number("")) + !isNaN(Number(null)) + Boolean("parseInt([])") +  !null;
    // // false + true + true + true
    // console.log(a);

    // 4、 parseFloat("1.6px") + parseInt("1.2px") + parseInt(null).toString();
    //    1.6 + 1 + 'NaN'-->2.6+'NaN'-->'2.6NaN'

    // 5、 isNaN(Number(!!Number(parseInt("0.8"))));
    // isNaN(Number(!!Number(0)));
    // isNaN(Number(false));
    // isNaN(0);
    // false




    // 6、 0 && 1 || '1' && NaN || 5 && '萨瓦迪卡';
    //       0    ||    NaN     ||  '萨瓦迪卡'
    //       NaN ||  '萨瓦迪卡'
    //        '萨瓦迪卡'

    // let n = [10, 20];
    // let m = n;
    // let x = m;
    // m[0] = 100;
    // x = [30, 40];
    // x[0] = 200;
    // m = x;
    // m[1] = 300;
    // n[2] = 400;
    // console.log(n, m, x);

    let a = {
      n: 1
    };
    let b = a;
    a.x = a = { // 像这种连续等于要从左往右依次赋值
      n: 2
    };
    console.log(a.x, b);




  </script>
</body>

</html>